package com.xiaoshuidi.cloud.module.member.pojo.coupon;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xiaoshuidi.cloud.framework.tenant.core.db.TenantBaseDO;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * @author Alex
 * @version generator
 * @description 客户优惠券entity实体
 * @date 2023-03-20 11:17:57
 */
@Data
@TableName("member_coupon_customer")
@Accessors(chain = true)
public class CouponCustomerEntity extends TenantBaseDO implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 客户id
     */
    private Long userId;
    /**
     * 客户名
     */
    private String userName;
    /**
     * 客户手机号
     */
    private String userPhone;
    /**
     * 优惠券id
     */
    private Long couponId;

    private Long recordId;

    private String businessKey;
    /**
     * 优惠券券码
     */
    private String couponCode;
    /**
     * 使用状态 1待使用 |2 已作废|3已使用|4已过期
     */
    private Integer usageStatus;
    /**
     * 使用时间
     */
    private Date usageTime;
    /**
     * 签约时发券合同
     */
    private String relevanceContract;
    /**
     * 关联账单
     */
    private String relevanceBill;

    /**
     * 关联账单编号
     */
    private String billNo;
    /**
     * 优惠金额
     */
    private BigDecimal preferentialAmount;
    /**
     * 优惠类型|0 立减|1 折扣
     */
    private Integer preferentialContentType;
    /**
     * 实际优惠金额
     */
    private BigDecimal realityPreferentialAmount;
    /**
     * 使用开始时间
     */
    private Date expirationStartTime;
    /**
     * 使用结束时间
     */
    private Date expirationEndTime;
    /**
     * 发券方式 0 自动发券|1 手动发券
     */
    private Integer issuingMethod;

    /**
     * 发券凭证
     */
    private String couponUrl;
    /**
     * 发券说明
     */
    private String remarks;
    /**
     * 发券人
     */
    private String issuerName;
    /**
     * id
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;

    private Boolean isLocked;
    private Integer lockedDuration;
    private Date lockedTime;


}
